GCP IoTCore
iot
How:
How-to Guides  |  Google Cloud Internet of Things Core  |  Google Cloud
sampleで動かす.
両方とも動いた。
moch-mochを使うIoT開発を加速する仮想デバイス作成サービス | mockmock
mockmock(仮想 IoT デバイス作成サービス)で Cloud IoT Core を使ってみる | apps-gcp.com
公式のsample: python-docs-samples/iot/api-client at master · GoogleCloudPlatform/python-docs-samples
ただ、subscribeして、デバイスにコマンド?を送るのはやってない。
registry ? 普通名詞としての単語の意味は?
a place where registers or records are kept.
recordsはok, registersは? ほぼ、recordsと同じようなもの?
なので、ここでは、データが貯まるポイント。
端末(device)はたくさんあるけど、registry単位でデータを管理するよ、、そのままの意味だけど、、
Credential
Verifying Credentials  |  Google Cloud Internet of Things Core  |  Google Cloud
per-device public/private key authentication usgin JWT.
addtional secutiry, device public key certificate against registry-level CertificateAuthority...
基本的には、device単位で公開鍵の登録をすれば良い。
protocolは、MQTTとHTTPのどちらか。
verify that your MQTT client library is using MQTT 3.1.1
3.1.1を使う。3.1は別仕様 pahoは、defaultが3.1.1ぽいので、OKだが、
Troubleshooting  |  Google Cloud Internet of Things Core  |  Google Cloud
flow
gcpの登録画面で、deviceの公開鍵を登録しておく。
device側で、送りたい情報をprivateキーで署名して、 token化 JWT
mqtt.googleapis.com:8883 が endpoint (httpsも使える)
mqtt.gogoleapis.comの ドメイン?認証は、を使う。
TLS通信を確立した後にデータ送信。
gcp側は、serverとして動く。
publicキーでdecodeして、デバイス情報が登録どおりならOKという流れ?
linkto: GCP IoTCore Trouble Shooting
topic名について
設定箇所が2箇所ある。
ウェブ上(gcp IotCore)上でレジストリのデフォルトのtopcを指定するところ。
端末で動かす(私の場合の)pahopaho-mqtt · PyPIで、publishする際のtopic名
ウェブ上で設定するデフォルトの方に値が入るのだけど、変更できない?
pahoだと、以下のようなAPIになってるけど、 
connect時には、端末情報のみ
publish時に、topic名と payloadを指定
RaspberryPiで動かす例がある。
Cloud IoT step-by-step: Connecting Raspberry PI + Python